package game.model;

import java.util.HashSet;
import java.util.Set;

/**
 * Clase que representa una componente vacia.
 * 
 */

public class Vacio extends Componente {

	/**
	 * Constructor de la clase Vacio.
	 */
	
	public Vacio() {
		setImagen(0);
	}

	@Override
	public Set<Rayo> getSalida(Rayo entrada){
		Set<Rayo> salida = new HashSet<Rayo>();
		Rayo rayoSalida = new Rayo(entrada.getColor(), entrada.getOrientacion());
		salida.add(rayoSalida);
		return salida;
	}

	@Override
	public String salvarEstado(String ubicacion) {
		return "# blanco";
	}
	
	@Override
	public Set<Rayo> getSalida(Rayo entrada, Set<Rayo> anterior) {
		Set<Rayo> auxiliarNuevo = new HashSet<Rayo>();
		Set<Rayo> auxiliarAnterior = new HashSet<Rayo>();
		
		auxiliarAnterior.addAll(anterior);
		
		auxiliarNuevo.addAll(getSalida(entrada));
		
		for(Rayo rayoAnt : auxiliarAnterior){
			for(Rayo rayoNuevo : auxiliarNuevo){
				if(rayoAnt.getOrientacion()%2 == rayoNuevo.getOrientacion()%2 && !rayoAnt.mismoColor(rayoNuevo)){
					anterior.remove(rayoAnt);
				}
			}
		}
		
		anterior.addAll(getSalida(entrada));
		
		return getSalida(entrada);
	}

}
